﻿
//链接：https://ac.nowcoder.com/acm/problem/224679
//来源：牛客网
//
//小红有一天看到了一只桃子，由于桃子看上去就很好吃，小红很想把它吃掉。
//已知吃下桃子后，每天可以获得​
//的快乐值，但是每天会获​
//的羞耻度。桃子的持续效果一共为
//k  天。
//小红想知道，自己在哪一天吃下果实，可以获得尽可能多的快乐值？
//
//如果有多个答案获得的快乐值相等，小红希望获得尽可能少的羞耻度。
//如果有多个答案的快乐值和羞耻度都相等，由于小红实在太想吃桃子了，她希望尽可能早的吃下桃子。
//输入描述 :
//第一行有两个正整数
//n 和k ，分别代表桃子的有效期总天数，以及桃子效果的持续天数。
//（桃子的有效期是指，无论桃子在何时服用，桃子的特殊效果只在这段时间之内有效）​
//，二行分别代表每天可以获得的快乐值。
//第三行有
//n  个正整数​
//，分别代表每天可以获得的羞耻度。
//输出描述:
//一个正整数，代表小红是第几天吃下桃子的。
//示例1
//输入
//复制
//4 2
//3 5 1 7
//4 6 5 1
//输出
//复制
//3
//说明
//选择在第三天吃下桃子，可以获得8快乐值和6羞耻度。

//////////////滑动窗口解法：
// 
// #include<iostream>
#include<vector>
//思路：固定窗口大小的滑动窗口：入 出 更新 （这里选择的是出窗口后更新）；其次就是更新时候的细节处理：
//主要是看hsum是否增大了，如果等于那就看s，要取最小的那个，此时需要了minssum和maxhsum记录；
//其次就是maxhsum和minhsum要同时更新，因为它们同时记录的是当前待定区间的这两个取值的分别和。
using namespace std;
using ll = long long;//越界处理
int main() {

    ll k, n;
    cin >> n >> k;
    vector<ll> h(n);
    vector<ll> s(n);
    for (int i = 0; i < n; i++) cin >> h[i];
    for (int j = 0; j < n; j++) cin >> s[j];
    int l = 0, r = 0;
    ll hsum = 0;
    ll ssum = 0;
    ll maxhsum = 0;
    ll minssum = 0x3f3f3f3f;
    int ret = 0;
    while (r < n) {
        // 入窗口：
        hsum += h[r];
        ssum += s[r];
        //出窗口：
        while (r - l + 1 > k) {
            hsum -= h[l];
            ssum -= s[l];
            l++;
        }
        //更新结果：
        if (r - l + 1 == k) {
            if (maxhsum < hsum) {
                maxhsum = hsum;
                minssum = ssum;
                ret = l + 1;

            }
            else if (maxhsum == hsum && ssum < minssum) {
                maxhsum = hsum;
                minssum = ssum;
                ret = l + 1;//下标转天数：
            }
            else {}
        }
        r++;

    }
    cout << ret << endl;

    return 0;
}